Quickstart: Tabular Compression with the command line interface
----------------------------------------------------------------

NeurEco executable for Tabular models (Regression, Compression, Classification) is called NeurEcoDNN. It can be called directly from a terminal / powershell after a full installation of NeurEco.

To build a NeurEco Regression model, run the following command in the terminal:

.. code-block:: shell

    neurecoDNN build path/to/build/configuration/file/build.conf

The skeleton of a configuration file required to build NeurEco Regression model, here build.conf, looks as follows (for the test case :std:ref:`Heaviside in quickstart`).
Its fields should be filled according to the problem at hand.

.. code-block:: javascript

	{
    "neurecoDNN_build": {
        "DevSettings": {
            "compressor_decompressor_ratio": 1,
            "final_learning": true,
            "initial_beta_reg": 0.1,
            "valid_percentage": 33.33
        },
        "UserSettings": {
            "gpu_id": 0,
            "use_gpu": false
        },
        "build_compress": true,
        "checkpoint_address": "./Heaviside/Heaviside.checkpoint",
        "classification": false,
        "compress_tolerance": 0.05,
        "exc_filenames": [
            "x_train.csv"
        ],
        "freeze_structure": false,
        "input_normalization": {
            "normalize_per_feature": false,
            "scale_type": "max",
            "shift_type": "none"
        },
        "minimum_compression_coefficients": 1,
        "model_output_format": "csv",
        "output_normalization": {
            "normalize_per_feature": false,
            "scale_type": "max",
            "shift_type": "none"
        },
        "resume": false,
        "starting_from_checkpoint_address": "",
        "starting_from_model_id": -1,
        "test_exc_filenames": [
            "x_test.csv"
        ],
        "write_compression_model_to": "./Heaviside/compressionHeaviside.ednn",
        "write_decompression_model_to": "./Heaviside/decompressionHeaviside.ednn",
        "write_model_to": "./Heaviside/Heaviside.ednn"
    	}
	}

	
.. note:: 
    For detailed documentation on **build**, see :std:ref:`Build NeurEco Compression model with the command line interface`. For data preparation, see :std:ref:`Data preparation for NeurEco Compression conf`.

To perform an evaluation, run the following command in the terminal:

.. code-block:: shell

    neurecoDNN evaluate path/to/evaluation/configuration/file/eval.conf
	
The skeleton of an evaluation configuration file, here eval.conf, looks as follows (for the test case :std:ref:`Heaviside in quickstart`).
Its fields should be filled according to the problem at hand.

.. code-block:: javascript

   {
	    "NeurEcoEvaluate": {
	        "exc_filenames": [
	            "x_test.csv"
	        ],
	        "neureco_filename": "./Heaviside/Heaviside.ednn",
	        "optional_output_reference": [
	            "y_test.csv"
	        ],
	        "write_model_output_to_directory": "./EvaluationResults"
	    }
	}
	
.. note::
    For detailed documentation on **evaluate**, see :std:ref:`Evaluate NeurEco Compression model with the command line interface`

To export the model to the chosen format, run one of the following commands:

.. code-block:: shell
    
    neurecoDNN exportC ./Heaviside/Heaviside.ednn ./Heaviside.h double
    neurecoDNN exportONNX ./Heaviside/Heaviside.ednn ./Heaviside.onnx float16
    neurecoDNN exportVBA ./Heaviside/Heaviside.ednn ./Heaviside.onnx float
    neurecoDNN exportFMU ./Heaviside/Heaviside.ednn ./Heaviside.fmu

Export to these formats requires *embed* license.

.. note::
    For detailed documentation on Tabular Compression with the command line interface, see :std:ref:`Tabular Compression with a configuration file`.